/**
 * TypeScript definition for contract data structures
 * Mirrors the backend ContractData dataclass
 */

export type ContractData = {
  /** 合约标识，如 CU2410 */
  symbol: string;
  /** 交易所标识 */
  exchange: string;
  /** 合约名称 */
  name: string;
  /** 品类（如 期货/期权 等），后端枚举映射为字符串 */
  product: string;
  /** 合约乘数 */
  size: number;
  /** 最小变动价位 */
  pricetick: number;

  /** 最小交易手数（默认 1） */
  min_volume: number;
  /** 是否支持止损单 */
  stop_supported: boolean;
  /** 是否使用净持仓 */
  net_position: boolean;
  /** 是否提供历史 K 线数据 */
  history_data: boolean;

  /** 期权执行价（可为 0 表示非期权） */
  option_strike: number;
  /** 标的合约符号 */
  option_underlying: string;
  /** 期权类型（后端枚举映射为字符串），无则为 null */
  option_type: string | null;
  /** 上市时间（ISO8601 时间字符串），无则为 null */
  option_listed: string | null;
  /** 到期时间（ISO8601 时间字符串），无则为 null */
  option_expiry: string | null;
  /** 期权组合/投资组合标识 */
  option_portfolio: string;
  /** 同一行权价标识索引 */
  option_index: string;
  /** 统一唯一合约标识，如 CU2410.SHFE */
  vt_symbol: string;

  // 参考字段（日频），非 CTP 原生
  /** 参考数据日期（ISO8601 日期字符串），无则为 null */
  ref_date: string | null;
  /** 是否为主力合约 */
  is_dominant: boolean;
  /** Ricequant 合约代码 */
  rq_code: string;
  /** 标的品种代码 */
  underlying_symbol: string;
  /** 行业名称 */
  industry_name: string;
  /** 期权行权价（参考） */
  strike_price: number;
  /** 隐含波动率 */
  iv: number;
  /** Delta */
  delta: number;
  /** Gamma */
  gamma: number;
  /** 退市日期（ISO8601 日期字符串），无则为 null */
  de_listed_date: string | null;
};
